/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package EntidadesController;

import java.sql.*;
import java.util.ArrayList;

import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Yan
 */
public class Horario {


    private String idhorario = "";
    private String hora_hora = "";
    private String minuto_minuto = "";
    private String dia_semana_diasemana = "";
    private SQLException erro = new SQLException();
    static Connection conexao = null;
    static Statement estado = null;
    static ResultSet rs;
    private boolean render=false;
    private String msgerro;

    public boolean isRender() {
        return render;
    }

    public void setRender(boolean render) {
        this.render = render;
    }
    public String getMsgerro() {
        return msgerro;
    }

    public void setMsgerro(String msgerro) {
        this.msgerro = msgerro;
    }

    public Horario() {
        conexao = new Conexao().Acesso();
    }

    public String inserir() throws SQLException {
        String result_inserir = "failure";
        /*idlocalizacao serial NOT NULL,
        hora_hora character varying(20),
        minuto_minuto character varying(20),
        dia_semana_diasemana character varying(20),*/
        try {
            estado = conexao.createStatement();

            estado.execute("INSERT INTO horario(hora_hora, minuto_minuto, dia_semana_diasemana) VALUES ('" + hora_hora + "','" + minuto_minuto + "','" + dia_semana_diasemana + "')");
            estado.close();
            result_inserir = "success";
            render = false;
        } catch (SQLException e) {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();

            if (msgerro.contains("un_horario_x_dia_unique")&&msgerro.contains("unicidade"))
            {msgerro = "Esse horário ja está cadastrado!";}
            //estado.execute("ROLLBACK");
            estado.close();
            result_inserir = "failure";
            render = true;
        }
        return result_inserir;
    }


    public String buscar() throws SQLException {
        String result_busca = "failure";
        try {
            estado = conexao.createStatement();
            rs = estado.executeQuery("SELECT * FROM horario JOIN usuario ON idhorario= '" + idhorario + "'");
            if (rs.next()) {

                hora_hora = rs.getString(2);
                minuto_minuto = rs.getString(3);
                dia_semana_diasemana = rs.getString(4);
            }
            rs.close();
            result_busca = "success";
            estado.close();
        } catch (SQLException e) {
            this.erro = e;
            result_busca = "failure";
        }
        return result_busca;
    }
    
    public String getErro() {
        return erro.getMessage();
    }

    public String getIdhorario() {
        return idhorario;
    }
    public List<String> getListaIdhorario() throws SQLException {

            List<String> items = new ArrayList<String>();

            estado = conexao.createStatement();
            rs = estado.executeQuery("SELECT * FROM horario");
            while (rs.next() == true) {
                idhorario = rs.getString(1);
                items.add(idhorario);
            }
         return items;
     }

    public String getDia_semana_diasemana() {
        return dia_semana_diasemana;
    }

    public List<String> getListaDia_semana_diasemana() throws SQLException {

    List<String> items = new ArrayList<String>();

    estado = conexao.createStatement();
    rs = estado.executeQuery("SELECT * FROM dia_semana");
    while (rs.next() == true) {
    dia_semana_diasemana = rs.getString(1);
    items.add(dia_semana_diasemana);
    }
    return items;
    }

    public String getHora_hora() {
        return hora_hora;
    }

    public String getMinuto_minuto() {
        return minuto_minuto;
    }

    
    public List<String> getListaHora_hora() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM hora");
        while (rs.next() == true) {
            hora_hora = rs.getString(1);
            items.add(hora_hora);
        }
     return items;
 }

    public List<String> getListaMinuto_minuto() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM minuto");
        while (rs.next() == true) {
            minuto_minuto = rs.getString(1);
            items.add(minuto_minuto);
        }
     return items;
 }


    public void setIdhorario(String idhorario) {
        this.idhorario = idhorario;
    }

    public void setDia_semana_diasemana(String dia_semana_diasemana) {
        this.dia_semana_diasemana = dia_semana_diasemana;
    }

    public void setHora_hora(String hora_hora) {
        this.hora_hora = hora_hora;
    }

    public void setMinuto_minuto(String minuto_minuto) {
        this.minuto_minuto = minuto_minuto;
    }

   /* public String buscar() throws SQLException {
        String result_busca = "failure";
        try {
            estado = conexao.createStatement();
            CREATE TABLE curso (
            codigocurso varchar,
            nivel_nivel varchar(25),
            descricao varchar(30),
            CONSTRAINT pk_codigocurso PRIMARY KEY (codigocurso)
            );
            rs = estado.executeQuery("SELECT * FROM localizacao WHERE idlocalizacao = '" + this.idhorario + "'");
            if (rs.next()) {
                //idhorario = rs.getString(1);
                hora_hora = rs.getString(2);
                minuto_minuto = rs.getString(3);
                dia_semana_diasemana = rs.getString(4);
            }
            rs.close();
            estado.close();
        } catch (SQLException e) {
        }
        return result_busca;
    }

    public String editar() {
        String result_inserir = "failure";
        try {
            estado = conexao.createStatement();
            /*CREATE TABLE curso (
            codigocurso varchar,
            nivel_nivel varchar(25),
            descricao varchar(30),
            CONSTRAINT pk_codigocurso PRIMARY KEY (codigocurso)
            );
            estado.execute("update curso set predio_descricao = '" + hora_hora + "' where idlocalizacao ='" + idhorario + "'");
            estado.execute("update curso set setor_descricaoo = '" + minuto_minuto + "' where idlocalizacao ='" + idhorario + "'");
            estado.execute("update curso set sala_descricao = '" + dia_semana_diasemana + "' where idlocalizacao ='" + idhorario + "'");
            estado.close();
            result_inserir = "success";
        } catch (SQLException e) {
            result_inserir = "failure";
        }
        return result_inserir;
    }*/

   /* public String getIdlocalizacao() {
        return idhorario;
    }

    public void setIdlocalizacao(String idhorario) {
        this.idhorario = idhorario;
    }*/

    

}
